package com.dcy.znoa.controller.attendance.model.apply;

/**
 * @author pengyu
 */

import com.baomidou.mybatisplus.annotations.TableField;
import com.dcy.znoa.common.bean.FileModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder // 同时需要申请表 apply 消息表 message  用户消息关联表（原公告表） mess_notice 附件表 sys_store_file 中的数据
//public class AddApplyModel extends FileModel{
public class AddApplyModel{
//    @TableId(type = IdType.AUTO, value = "apply_id")
//    Long applyId;//申请ID

    @NotNull
    Long sendOperId;//申请用户id

    @NotNull
    Long compId;//企业ID

    String eName;//对应实体表名，目前只有考勤表,可以为空。申述时不能为空

    Long eId;//对应实体表ID，可以为空；申述时不能为空

    @NotNull
    Long receiveOperId;//接收人ID

//    @NotNull
//    Integer isFinal;//是否最终审批人

    Date applyTime = new Date();//申请时间

//    @NotNull
//    String startTimeStr;
    @NotNull
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date startTime;
//    @NotNull
//    String endTimeStr;
    @NotNull
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date endTime;

    @NotNull
    Integer type;//申请类型 1 请假 2 出差 3 外勤  9 申述
    /*
    * 申请子类型 :
        申请类型为
        1 请假 时，

        子类型为
        1 事假
        2 病假
        3 年休假
        4 丧假
        5 婚假
        6 调休
        7 产假
        8 陪产假
    * */
    Integer childType;

    //申述时，申请标题由后台生成，申请成，前台填写
    String title;//申请标题
    @NotNull
    String content;//申请内容

    String remark;//申请备注

    String address;//申请地点
//    @NotNull
//    Date auditTime;//审核时间

//    @NotNull("is_audit")
//    Integer isAudit;//审核状态：0：未审核 1  通过 2 未通过

//    @NotNull("audit_content")
//    String auditContent;//审核内容

    Integer isRevoke = 0;//是否已撤销 ，0为否，1为是

    //消息表 message  用户消息关联表（原公告表）
    @NotNull
    String messTitle;//mess_title
    @NotNull
    String message;//

    Integer messType = 2;// 2 申请

    Date sendTime = new Date();//暂时默认自动发送

    Long createOperId;

    Date createTime = new Date();
    //用户ID
    @NotNull
    String operIdsStr;

    int[] ids;

    Integer validFlag = 1;

    Integer isSms;//0 为不发，1为发


    //附件 来自 AddStoreFileModel
//    @NotNull
    private String fileName;

    //    @NotNull
    private String remoteFileName;

    private String downloadPath;

    private String filenameExtension;

    private String entityTbl;

    private Long entityId;

    private String fileFunction;
}
